// SlagCar/ForgetPwd/ForgetPwd.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    db_id: 'CXB_1164',      // 固定
    system_id: 1164,        // 固定系统号
    phone: '',              // 手机号
    code: '',               // 验证码
    request_id: '',
    
    countdown: 0,

    pwdNew: '',             // 新密码
    pwdConfirm: '',         // 确认密码
    pwdConfirmType: 'password',
    pwdNewType: 'password',
  },

  // 双向绑定 报警告处理
  inputIpt(e) {
    let name = e.currentTarget.dataset.name
    if(name) {
      let value = e.detail.value,
          trimValue = value.trim()
      if(value !== trimValue) {
        this.setData({
          [name]: trimValue,
        })
      }
    }

  },

  // 获取验证码
  sendCode() {
    let { countdown, phone, system_id, db_id, } = this.data,
        reg = /^1[3456789]\d{9}$/
		if(countdown) return
    if(!reg.test(phone)) {
      wx.$toast('请输入正确手机号')
      return
    }
    let post = {
      phone,
      system_id,
      db_id,
    }

    wx.showLoading({ mask: true, })
    wx.$post(1, 'AliyunSMS/sms_send', post).then(res => {
      if(res.errcode !== 0) return
      wx.$toast('验证码已发送')
      let { row, } = res.data,
          { request_id, } = row[0]
      countdown = 59
      this.setData({
        countdown,
        request_id,
      })
      let timer = setInterval(() => {
        countdown--
        this.setData({
          countdown,
        })
        if(!countdown) clearInterval(timer)
      }, 1000)
    })
  },
  // 提交
  submit(e) {
    let { phone, code, pwdNew, pwdConfirm, request_id, system_id, db_id, } = this.data,
        isValid = /^1[3456789]\d{9}$/.test(phone),
        msg = !phone ? '请输入手机号' : !isValid ? '手机号码错误' : !code ? '请输入验证码' : !pwdNew ? '请输入新密码' : !pwdConfirm ? '请再次输入新密码' : pwdNew !== pwdConfirm ? '两次密码不一致' : ''
    if(msg) {
      wx.$toast(msg)
      return
    }
    let post = {
      system_id,
      phone: phone,
      verify_code: code,
      password: pwdNew,
      request_id: request_id,
      db_id,
    }

    wx.showLoading({ mask: true, })
    wx.$post(1, 'Authorize/update_user_password', post).then(res => {
      wx.hideLoading()
      if(res.errcode !== 0) {
        wx.$toast(res.msg)
        return
      }
      wx.showModal({
        title: '修改密码成功',
        content: '密码已重置，请使用新密码进行登录',
        confirmText: '去登录',
        showCancel: false,
        success(res) {
          if(res.confirm) {
            wx.redirectTo({
              url: '/pages/login/login',
            })
          }
        },
      })
    })
  },

  onInputTypeChange(e) {
    let { key, } = e.currentTarget.dataset,
        val = this.data[key]
    val = val === 'text' ? 'password' : 'text'
    this.setData({
      [key]: val,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // wx.$setBarTitle();

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
})
